
/**
 * GUI zur Ansicht eines Artikels
 * nach Eingabe der Artikelnummer (Bar-Code)
 * 
 * @author Lennard Kerber 
 * @version 0.01 alpha
 */

import java.awt.*;
import java.awt.event.*;

public class ArtikelAnsicht extends Frame implements ActionListener
{
    // instance variables - replace the example below with your own
    private Artikel keinArtikel = new Artikel();
    
    private KassenDB db = new KassenDB();
    private Label nameLegende;
    private Label eanLegende;
    private Label preisLegende;
    private Label steuerLegende;
    private Label eingabeLegende;
    
    private Label nameLabel;
    private Label eanLabel;
    private TextField eanTextField;
    private Label preisLabel;
    private Label steuerLabel; 
    private Button okButton;

    /**
     * Constructor for objects of class ArtikelAnsicht
     */
    public ArtikelAnsicht()
    {
        // initialise instance variables
        super();
        this.keinArtikel = new Artikel("Artikel nicht gefinden","ohne EAN",0.0,"A");
        setTitle("Artikel Information");
        setBackground(new Color(120,120,120));
        setSize(700,270);
        setLocation(0,0);
        setLayout(null);
        
        nameLegende = new Label();
        nameLegende.setText("Name");
        nameLegende.setForeground(new Color(0,0,0));
        nameLegende.setBackground(new Color(0,250,250));
        nameLegende.setEnabled(true);
        nameLegende.setFont(new Font("SansSerif",0,18));
        nameLegende.setVisible(true);

        eanLegende = new Label();
        eanLegende.setText("EAN");
        eanLegende.setForeground(new Color(0,0,0));
        eanLegende.setBackground(new Color(0,250,250));
        eanLegende.setEnabled(true);
        eanLegende.setFont(new Font("SansSerif",0,18));
        eanLegende.setVisible(true);

        preisLegende = new Label();
        preisLegende.setText("Preis");
        preisLegende.setForeground(new Color(0,0,0));
        preisLegende.setBackground(new Color(0,250,250));
        preisLegende.setEnabled(true);
        preisLegende.setFont(new Font("SansSerif",0,18));
        preisLegende.setVisible(true);

        steuerLegende = new Label();
        steuerLegende.setText("MWST");
        steuerLegende.setForeground(new Color(0,0,0));
        steuerLegende.setBackground(new Color(0,250,250));
        steuerLegende.setEnabled(true);
        steuerLegende.setFont(new Font("SansSerif",0,18));
        steuerLegende.setVisible(true);

        eingabeLegende = new Label();
        eingabeLegende.setText("Eingabe: EAN");
        eingabeLegende.setForeground(new Color(0,0,0));
        eingabeLegende.setBackground(new Color(250,250,250));
        eingabeLegende.setEnabled(true);
        eingabeLegende.setFont(new Font("SansSerif",0,18));
        eingabeLegende.setVisible(true);

        nameLabel = new Label();
        nameLabel.setText("kein Artikel");
        nameLabel.setForeground(new Color(0,0,0));
        nameLabel.setBackground(new Color(0,250,250));
        nameLabel.setEnabled(true);
        nameLabel.setFont(new Font("SansSerif",0,18));
        nameLabel.setVisible(true);

        eanTextField = new TextField();
        eanTextField.setText("");
        eanTextField.setForeground(new Color(0,0,0));
        eanTextField.setBackground(new Color(250,250,250));
        eanTextField.setEnabled(true);
        eanTextField.setFont(new Font("SansSerif",0,18));
        eanTextField.setVisible(true);
        eanTextField.addActionListener(this);
        
        eanLabel = new Label();
        eanLabel.setText("kein EAN");
        eanLabel.setForeground(new Color(0,0,0));
        eanLabel.setBackground(new Color(0,250,250));
        eanLabel.setEnabled(true);
        eanLabel.setFont(new Font("SansSerif",0,18));
        eanLabel.setVisible(true);

        preisLabel = new Label();
        preisLabel.setText("kein Preis");
        preisLabel.setForeground(new Color(0,0,0));
        preisLabel.setBackground(new Color(0,250,250));
        preisLabel.setEnabled(true);
        preisLabel.setFont(new Font("SansSerif",0,18));
        preisLabel.setVisible(true);

        steuerLabel = new Label();
        steuerLabel.setText("keine MWST");
        steuerLabel.setForeground(new Color(0,0,0));
        steuerLabel.setBackground(new Color(0,250,250));
        steuerLabel.setEnabled(true);
        steuerLabel.setFont(new Font("SansSerif",0,18));
        steuerLabel.setVisible(true);
        
        okButton = new Button();
        okButton.setLabel("Aktualisieren");
        okButton.setForeground(new Color(0,0,0));
        okButton.setBackground(new Color(250,250,250));
        okButton.setEnabled(true);
        okButton.setFont(new Font("SansSerif",0,18));
        okButton.setVisible(true);
        okButton.addActionListener(this);
        
        nameLegende.setBounds(20,60,129,22);
        eanLegende.setBounds(20,60+1*(11+22),129,22);
        preisLegende.setBounds(20,60+2*(11+22),129,22);
        steuerLegende.setBounds(20,60+3*(11+22),129,22);
        eingabeLegende.setBounds(20,60+4*(11+22),129,22);

        nameLabel.setBounds(160,60,480,22);
        eanLabel.setBounds(160,60+1*(11+22),480,22);
        preisLabel.setBounds(160,60+2*(11+22),480,22);
        steuerLabel.setBounds(160,60+3*(11+22),480,22);

        eanTextField.setBounds(160,60+4*(11+22),480,22);
        okButton.setBounds(160,60+5*(11+22),480,22);
        
        this.add(nameLegende);
        this.add(eanLegende);
        this.add(preisLegende);
        this.add(steuerLegende);
        this.add(eingabeLegende);

        this.add(nameLabel);
        this.add(eanLabel);
        this.add(eanTextField);
        this.add(preisLabel);
        this.add(steuerLabel);
        this.add(okButton);
        
        
        
        
        // 
        addWindowListener(new WindowLauscher());

        // Fenster anzeigen
        setVisible(true);
    }

    /**
     * An example of a method - replace this comment with your own
     * 
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y 
     */
    public void actionPerformed(ActionEvent e)
    {
        Artikel artikel = db.getArtikel(eanTextField.getText());
        
        if (artikel == null) artikel = keinArtikel;
        
        nameLabel.setText(artikel.getName());
        eanLabel.setText(artikel.getEAN());
        preisLabel.setText(""+artikel.getPreis());
        steuerLabel.setText(artikel.getSteuersatz());
         
        eanTextField.setText("");

    }

    protected static final class WindowLauscher extends WindowAdapter {
      public void windowClosing(WindowEvent e){
        System.exit(0);  
      }
    }


}
